<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Gestalt under ROMlib</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="NEXT"
TITLE="ARDI selectors"
HREF="x163.html"></HEAD
><BODY
CLASS="article"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
><A
NAME="AEN2"><TT
CLASS="function"
>Gestalt</TT
> under ROMlib</H1
><P
CLASS="copyright"
>Copyright &copy; 1999, 2002 by Abacus Research &#38; Development, Inc.</P
><DIV
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="50%"
CELLSPACING="0"
CELLPADDING="0"
ALIGN="CENTER"
><TR
><TD
VALIGN="TOP"
><B
>Abstract</B
></TD
></TR
><TR
><TD
VALIGN="TOP"
><P
>&#13;This article provides information about <TT
CLASS="function"
>Gestalt</TT
>
under ROMlib.  Since <TT
CLASS="application"
>Executor</TT
> and the
Carbonless Copies Runtime System both use ROMlib, this information
also applies to them.
</P
></TD
></TR
></TABLE
></DIV
><HR
WIDTH="75%"
ALIGN="CENTER"
COLOR="#000000"
SIZE="1"></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="t1.html#AEN20"
>Apple Selectors</A
></DT
><DT
><A
HREF="x163.html"
>ARDI selectors</A
></DT
></DL
></DIV
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;The information in this paper is <I
CLASS="emphasis"
>not</I
> built
directly from the ROMlib source.  It is provided as-is and is subject
to change.
</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="AEN20">Apple Selectors</H1
><P
>&#13;PageMaker 4.2 calls <TT
CLASS="function"
>Gestalt</TT
> with the
<TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
> selector and if
<TT
CLASS="function"
>Gestalt</TT
> returns <SPAN
CLASS="returnvalue"
>noErr</SPAN
>,
proceeds to use the Alias Manager, even the response is
<SPAN
CLASS="returnvalue"
>0</SPAN
>.  PageMaker 4.2 will not use the Alias
Manager if in this case <TT
CLASS="function"
>Gestalt</TT
> returns
<SPAN
CLASS="returnvalue"
>gestaltUndefSelectorErr</SPAN
>.  PageMaker 4.2's
use of <TT
CLASS="function"
>Gestalt</TT
> doesn't appear to be within spec
(IMVI), but that's just another difference where ROMlib has to do what
the Mac does, rather than what the specifications suggest.
</P
><P
>&#13;MacInTax '93 does the same thing with the Edition Manager that
PageMaker does with the Alias Manager.  Claris Works does the same
thing with Apple Events.  After ARDI saw three instances of this
behavior ARDI stopped keeping track.  Because of such behavior, there
are a number of selectors that ROMlib deliberately fails to recognize.
ROMlib does this when its support for the queried functionality is
incomplete.  Here are the selectors that ROMlib deliberately fails to
recognize:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltApplEventsAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltAppleTalkVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltAUXVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltConnMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltCRMAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltCTBVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltDBAccessMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltEasyAccessAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltEditionMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFontMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFXfrMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltHardwareAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltHelpMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMiscAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltNotificatinMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltNuBusConnectors</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltOSAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltPopupAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPowerMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPPCToolboxAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltResourceMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptCount</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptMgrVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltSerialAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltStdNBPAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltTermMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltParityAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltVMAttr</TT
></TD
><TD
>'<TT
CLASS="literal"
>icmp</TT
>'</TD
></TR
><TR
><TD
>'<TT
CLASS="literal"
>sysa</TT
>'</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;ROMlib recognizes and returns information for these selectors:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltDITLExtAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFindFolderAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFSAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltSoundAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltExtToolboxTable</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltToolboxTable</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltOSTable</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFPUType</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltKeyboardType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltLogicalPageSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltLogicalRAMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltLowMemorySize</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltMMUType</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPhysicalRAMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltProcessorType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltQuickdrawVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltQuickdrawFeatures</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltTimeMgrVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMachineIcon</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMachineType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltROMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltROMVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltSystemVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltTextEditVersion</TT
></TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;ROMlib fails to recognize the following four selectors unless they are
specifically enabled by the "pretend" options (Pretend Help, Pretend
Edition, Pretend Script, Pretend Alias).  The pretend options can be
enabled in the preferences panel or via a configuration file.
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltHelpMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptMgrVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltEditionMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
></TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;These two selectors are only recognized if the system version is set
to 7.0 or higher:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltStandardFileAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltApplEventsAttr</TT
></TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x163.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>ARDI selectors</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>